// 添加公共的js逻辑
// axios 基地址
axios.defaults.baseURL = "http://www.itcbc.com:8000";
// axios 自动显示加载中 自动关闭加载中
// axios 错误提示

axios.interceptors.request.use(
  function (config) {
    // console.log(config);
    //每一个请求都需要带token - 注册 - 登录不需要token
    if (localStorage.getItem("cms90")) {
      config.headers.Authorization = localStorage.getItem("cms90");
    }
    NProgress.start();
    return config;
  },
  function (error) {
    return Promise.reject(error);
  }
);

axios.interceptors.response.use(
  function (response) {
    NProgress.done();
    // 当code存在 （不等于undefined） ，并且它不等于 0   错误弹出窗口
    if (response.data.code !== undefined && response.data.code !== 0) {
      // console.log(111);
      // 后端返回的数据结构 不一致！！ => 后端的问题！！  后端接口设计的时候，返回的数据结构一定要一致！！
      // 1 以前返回数据 有code 表示业务状态码
      // 2 现在 省 接口 没有code 没有业务状态码 - 不需要做错误弹出窗口
      toastr.error(response.data.message);
    }
    return response;
  },
  function (error) {
    // 超过2xx 响应状态码都会在触发
    NProgress.done();
    // console.log(222);
    toastr.error(error.response.data.message);
    // console.dir(error);

    // 401 没有权限！！！  token无效 - 重新跳转回登录页面
    if (error.response.status === 401) {
      // 当前页面结构 是页中页 两个页面 父子页面
      // 父页面存在一个自己 window 对象
      // 子页面存在一个自己window对象
      // 父页面 window.location
      // 子页面 window.location

      // 获取父页面的 window对象  window.parent
      // 获取最顶层祖先元素 window对象 window.top
      // window.parent.location.href = "login.html";
      window.top.location.href = "login.html";
    }
    return Promise.reject(error);
  }
);
